/**
 * @author Q
 * @create 2025-07-13-9:31
 */

/**
 * 9.性能测试概念（对自己编写的接口进行性能测试以及性能调优）
 *      1.什么是性能测试
 *      2.常见性能指标
 *      3.性能测试关注点
 *      4.性能测试分类
 */
public class Test {
    public static void main(String[] args) {
        /**
         * 4.性能测试分类
         *      1.基准测试
         *          监测被测系统在较低压力下的运行状况及记录相关数据用与对多用户并发/混合场景测试测试提供参考依据
         *      2.并发测试（多个用户同时进行...）
         *          评估某个系统的某些特定操作同时发生时的性能表现
         *      3.负载测试（加量观察情况，保持性能情况下）
         *          通过逐渐增加负载来测试系统不同负载下的不同表现
         *      4.压力测试（搞崩系统）
         *          高于预期、高于指定容量需求下的表现
         *          两者区别
         *              1.负载是在保证性能下，增加负载测试
         *              2.压力是测试极限情况下进行测试
         *      5.安全性测试
         *          在负载测试的基础上，执⾏较⻓时间的测试以检查系统的稳定性。通常较⻓时间指3*24⼩时以上。
         */
    }
    public static void main3(String[] args) {
        /**
         * 3.性能测试关注点
         *      软件设计开发⼈员
         *          关注算法设计、架构设计、性能最佳实践、数据库相关、软件性能的可测试性等⽅⾯。
         *      性能测试人员
         *          ⼯作重点在于性能测试场景的设计、脚本的开发和执⾏，以及性能缺陷的排查和定位。
         */
    }
    public static void main2(String[] args) {
        /**
         * 2.常见性能指标
         *      1.并发数：并发用户数
         *          业务层面：实际使用系统的用户总数
         *          代码层面：web服务器在一段时间内处理浏览器请求而建立的http连接/生成的处理线程数
         *      2.吞吐量：单位时间内处理的并发数，吞吐量越高，性能越好
         *          分类：
         *              1.按照请求数量：
         *                  TPS(每秒处理事务数，用于衡量系统在一定时间内能够处理的事务数)公式：总的请求成功事务数/总的运行时间
         *                      实际情况：没有详细数据：二八定律（百分之八十的事务在百分之二十的时间内完成）
         *                              有详细数据：数据请求时间段成功事务数/数据时间段 + 业务增长（一般是该时间段请求的30%）
         *                  QPS：每秒查询率
         *                      若事务中只有一个接口且是查询接口，则QPS=TPS
         *              2.按照网络数据包划分：KB
         *      3.响应时间：应用系统从请求发出开始，到客户端接收到最后一个字节数据所需要的时间
         *          针对web系统：
         *              前端展现时间：页面渲染时间
         *              系统响应时间：包含服务器、数据库、通讯网络
         *      4.三者之间的关系
         *          开发数（用户）较少时，吞吐量低，响应时间短，用户不断增加，吞吐量线性增长，响应时间平缓增长
         *          吞吐量达到饱和点时，系统不再立即处理开发数（用户），响应时间增加，
         *          系统性能的拐点（饱和点）是性能测试主要目的之一
         *       5.资源利用率
         *          通过查看系统占⽤的情况分析资源瓶颈。
         *          服务器：CPU、内存、磁盘、⽹络等
         */
    }
    public static void main1(String[] args) {
        /**
         * 1.什么是性能测试
         *      1.概念：为了发现系统性能问题/获取系统性能相关指标而进行的测试
         */
    }
}
